package com.zhq.blog.manage.domain.quartz;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import com.zhq.blog.core.domain.Context;
import com.zhq.blog.core.domain.game.GamePeriod;
import com.zhq.blog.core.domain.game.GamePeriod.LotteryMethod;
import com.zhq.blog.manage.domain.quartz.utils.QuartzUtils;

/**
 * @title:QuartzJob.java
 * @package com.zhq.blog.manage.domain.quartz
 * @author 张恒强
 * @date 2014年12月25日 下午1:24:10
 * @version V1.0
 * 欢乐11定时任务
 */
@Component
public class Happy11QuartzJob {
	
	@Autowired
	private Context context;
	
	/**
	 * 流程概述
	 * 1 产生下一期 返回要投注的期数和要开奖的期数
	 * 2开奖
	 * 3发放奖励
	 * 4设置正在运行的自动投注和智能投注
	 * 5进行自动投注
	 */
	public void work(){
		
		/////////////////////////////开始//////////////////////////////////////////
		
		//生成下一期  返还要投注的期数和要开奖的期数
		
		QuartzUtils qt = new QuartzUtils();
		List<GamePeriod> list = qt.generatorGamePeriod(context, 2);
		//开奖、发放奖励、更改自动投注
		GamePeriod gp = null;
		if(list.size()>1){//返回了要开奖的期数 那么就开奖
			//1、开奖 并设置该期的一些属性
			gp = qt.lotterying(context, list.get(1).getGameId(), list.get(1).getPeriod());
			if(!gp.getLotteryMethod().equals(LotteryMethod.AUTO_RANDOM)){
				//2、发放奖励 同时产生资金明细 修改投注为已开奖 中奖的设置为中奖
				qt.award(context, list.get(1).getGameId(), list.get(1).getPeriod(),gp.getResultNumber());
				//3、更改自动投注
				qt.update_currentCathecticModel_of_autoBet(context, list.get(1).getGameId(), list.get(1).getPeriod(),gp.getResultNumber());
			}
			
		}
		//自动投注、对号投注
		qt.auto_bet(context,list.get(0).getGameId(),list.get(0).getPeriod(),gp ==null?-1:gp.getResultNumber());
		
		//////////////////////////结束/////////////////////////////////////////////////
    }
}
